package com.ruoyi.dataserver.service;



import com.ruoyi.dataserver.api.dto.LengthResultDTO;
import com.ruoyi.dataserver.api.dto.ScopeDto;
import com.ruoyi.dataserver.api.dto.StatisticDto;
import com.ruoyi.dataserver.api.dto.StatisticResultDTO;
import com.ruoyi.dataserver.api.entity.StatisticsData;

import java.util.List;

/**
 * @ProjectName intelligent-city
 * @Package com.lab.dataserver.service
 * @ClassName IStatisticsService
 * @Description 统计服务接口类
 * @Company LAB
 * @Author LXK
 * @Date 2020/6/24 8:57
 * @UpdateUser
 * @UpdateDate
 * @UpdateRemark
 * @Version 1.0.0
 */
public interface IStatisticsService {

    Long queryForObject();

    /**
     * @param sql :
     * @return java.lang.String
     * @Title queryLengthResultBySql
     * @Description 根据sql语句查询
     * @author heff
     * @date 2020/7/8 13:47
     * @UpdateUser
     * @UpdateDate
     * @UpdateRemark
     */
    LengthResultDTO queryLengthResultBySql(String tablename, ScopeDto scopeDto);

    /**
     * @param sql :
     * @return java.lang.String
     * @Title queryStatisticResultBySql
     * @Description 根据sql语句查询
     * @author heff
     * @date 2020/7/8 13:47
     * @UpdateUser
     * @UpdateDate
     * @UpdateRemark
     */
    List<StatisticsData> queryStatisticResultBySql(String sql);

    /**
     * @param statisticDto :
     * @return com.lab.dataserver.api.dto.StatisticDataDto
     * @Title pipelines
     * @Description 管线长度统计
     * @author heff
     * @date 2020/7/10 15:01
     * @UpdateUser
     * @UpdateDate
     * @UpdateRemark
     */
    StatisticResultDTO pipeLines(StatisticDto statisticDto);

    /**
     * @param statisticDto :
     * @return com.lab.dataserver.api.dto.StatisticResultDTO
     * @Title pipediameter
     * @Description 管径分类统计 line查询长度 sum(CD),point查询个数 count(*)
     * @author heff
     * @date 2020/7/13 13:41
     * @UpdateUser
     * @UpdateDate
     * @UpdateRemark
     */
    StatisticResultDTO pipeDiameter(StatisticDto statisticDto);

    /**
     * @param statisticDto :
     * @return com.lab.dataserver.api.dto.StatisticResultDTO
     * @Title manholeCountStatistics
     * @Description 井盖数量统计
     * @author heff
     * @date 2020/7/13 15:58
     * @UpdateUser
     * @UpdateDate
     * @UpdateRemark
     */
    StatisticResultDTO manholeCountStatistics(StatisticDto statisticDto);

    /**
     * @param statisticDto :
     * @return com.lab.dataserver.api.dto.StatisticResultDTO
     * @Title valveCountStatistics
     * @Description 阀门数量统计
     * @author heff
     * @date 2020/7/13 23:05
     */
    StatisticResultDTO valveCountStatistics(StatisticDto statisticDto);

    /**
     * @param statisticDto :
     *                     * @return com.lab.dataserver.api.dto.StatisticResultDTO
     * @Title materialStatistics
     * @Description 材质统计
     * @author heff
     * @date 2020/7/13 23:08
     */
    StatisticResultDTO materialStatistics(StatisticDto statisticDto);

    /**
     * @param statisticDto :
     * @return com.lab.dataserver.api.dto.StatisticResultDTO
     * @Title accessoriesStatistics
     * @Description 附属物分类统计
     * @author heff
     * @date 2020/7/13 23:10
     */
    StatisticResultDTO accessoriesStatistics(StatisticDto statisticDto);
}
